Introduction
This is the first week, I had to do three things basically. First I had to
think about our final project and came out with a descritpion of it. I built a
page up in this site where you can find everything about it. Second, I had to
learn how to use version control softwares, to be more specific Git.
Third, I had to make my personal web site, upload it every week explaining
what I did and how I did it.
Git
When we say Git, first we say version control.
Version Control is the management of changes to documents, softwares and web
sites. It's very useful when you have to work on huge files, and you have
to do with other people at the same time. Git
is one of those softwares. A popular alternative to Git is
Mercurial. Taking a look on the
2015 fabacademy's pages, I saw that many of them used it, instead we all used
Git. Our instructor explained us how it works, the main commands and the most
common problems we could face. The first thing we did was the generation of a
shh key, with the command:
ssh-keygen Then I proceeded to clone
the archive on my computer. I the archive there are the files of all my
fabacademy classmates, so it's pretty important to pay attention when you use
Git, because basically you are able to modify and change not only your own
documentation, but the one of the others too. There's anyway a backup files,
so our instructor can fix a damage like that.
These are the main commands that I used with Git, the first four allowed me to
update my website:
git add .
This command updates the index using the current content found in the working tree.
git commit -m "text"
This command stores the current contents of the index in a new commit along with a log message from the user describing the changes.
git pull origin master
This command incorporates changes from a remote repository into the current branch.
git push origin master
This command updates remote refs using local refs, while sending objects necessary to complete the given refs
git log
This command shows you the commit logs.
git help
This command shows you a list of all the Git's commands.
git help "command_name"
This command explains you how a single command works in the ditails.
One of the most important things is to do
git pull origin master before
git push origin master. If you don't incorporate the changes of all your repository,
(in this case is FabLab Toscana), you wont be able to update your own site.
Mercurial
Just like
Git, Mercurial is a version control program, really useful to work on big
project with different people. Mercurial is similar to Git, in many ways, and still it's
different.
Once I installed it with my package manager, I tried to use it by command line.
I had just to write
hg [command] (hg is the symbol of the mercury in the periodic
tabel). The commands are avery similar, you have to create your repository, you have
to add files, and also there you use the
pull command in order to synchronize the
local repository with the remote one.
Since they really looked the same to me, I did some research on the differences between the two.
This is how I discovered
Wiki vs:

In this page they explain the main differences between the two programs, and there's also
a really useful table that compares the line commands of both:

Then I've found another website that compares both those softwares. This is pretty funny,
because it said that Git is McGyver:

and Mercurial is James Bond:

In order to describe the differences between them.
Bazaar

In order to finish my review on versioning programs, I had a look on
Bazaar.
I've found a web site that compares bazaar and git, it explains where bazaar is strong and
where Git is strong.
- Bazaar is optimizer for windows, and it runs really well on it. Git is optimized for
Unix system
- Bazaar has direct support for more workflows, Git supports only one workflow.
- Apparently bazaar works better then Git. The web site explained this sentence
writing that bazaar crashes less then Git, and in general it's harder to do mistakes
with it
- Bazaar has a plug-in architecture
On the other hand, git is described as much more faster than Bazaar, its storage efficency is renowned,
and the cryptographic content validation (Linus made cryptographic strength integrity checking a core part of Git’s design).
Html and CSS
Before I start talking about the making of my web site, I would say that was
the very first time for me, I've never did it before nor I studied anything about it. So during the first days everything was both new and similar to me. I decided to use html because it looked both easy and solid at the same time, and I really wanted to understand how simple things work on a web page. I've found a guide that was as easy as useful. It explained me step by step what to do, and for friday (29/02) I built a html page, it was really basic, with 7 lines more or less, but it worked, and that was fine for me.
Saturday I started to study CSS. I read the first things
here, in order to learn something
about how it works. With several informations that I've found here I made a
personal css sheet, where I put all the informations about colors, fonts and sizes.
In the beginning I've this site very helpful.
It's a real time html editor, it allowed to me to check what was doing and if I was doing it correctly.
During the other weeks, I often visited w3schools, where it's explained in a
really clear way everything related about html, css and javascript. At the end of every
"lesson" they encourage you to do some exercises to test your skills, it's a really
fast way to learn.
Last but not least, I suggest Code Academy.
Code Academy helps you out learning differents programming languages, html and Css too.
It's a really user-friendly web-site, the only problem is that it will take you
a lot of time to complete the courses.
For my icons I used the ones that I've found in the noun project web site.

In order to reduce the images size, I used Tiny png, you can upload the files via web and
then just download the same image, but reduced.

Since I've got only Linux Arch on my pc, I've found Shutter really helpful
for my screenshots. It's easy, fast, and the images it does are really, really light.
Materialize
After a quick overview I
had to decide between Foundation, Bootstrap and Materialize.

I went for the
last one because in the beginning I
liked the idea of a googlish web site (in its shapes), then during my job I
leaved that idea (mostly because I was not able to) but I've found
Materialize's web site easy to understand and very clear, so I kept using
it.
Materialize default's font is
Roboto, but I didn't like it at all.
I looked online for something different, until I've found
Perfectly amicable.
I've fount it on
this web site.

For the most part of the time this job has been slow, but not hard, anyway I
had some trouble. The biggest one was about my navbar, because I couldn't make
it responsive. I had this problem with every element of my web page, but in
the end I fixed it for the cards, for the images, and for the grid, but
I couldn't make it for the navbar. This issue doesn't change my botton bar
in a side bar, and this means that it's almost impossibile to browse my web
page via mobile. I've tried to follow the guide, but either the guide is not
clear about it or I miss something important.
I tried to use
inspect element while browsing the example page, comparing
its code to mine, but I could not fix it.
Conclusions
This was something I really wanted to learn. It was not easy and it took me a lot
of time to understand how to do it properly. To be honest I think I have to keep studying
and improve my skills, but it's something I really enjoy.
Versioning control softwares are really useful,and something that I will use in the future for sure.
Bazaar looked nice in the beginning, but since I use only Linux OS, Git looked like the best solution
for me.

This work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.